package br.mikhas.container.annotation;

import br.mikhas.container.config.BeanDefinition;

/**
 * Executes aditional bean definition extraction.
 * 
 * @author Mikhail Domanoski
 * 
 */
public interface ChainedDefinitionExtractor {
	/**
	 * Extracts extra definition from bean class and existing definition.
	 * 
	 * @param cls
	 *            The bean class
	 * @param definition
	 *            The current bean definition
	 * @param provider
	 * @return
	 */
	BeanDefinition extractDefinition(Class<?> cls, BeanDefinition definition,
			AnnotatedBeanProvider provider);
}
